/**安装教程
 */
// https://blog.csdn.net/dzqxwzoe/article/details/132372197

// 需要梯子
// https://learnopengl-cn.github.io/
// https://learnopengl-cn.github.io/01%20Getting%20started/02%20Creating%20a%20window/

// 环境配置
// https://www.bilibili.com/video/BV1sb4y1J7YT/?spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=db9f10913476ba59c87a9230c8545be4

// https://gitee.com/chen-zhengsheng/glfw-project


// 源码
// https://github.com/yocover/start-learning-opengl/tree/main

/**lib和dll
 * 1.静态链接库 (Libraries):

静态链接库（通常以 .lib 或 .a 结尾）是在编译时将库的目标代码直接链接到可执行文件中的一种库。这意味着在编译程序时，
所有库的代码都被合并到生成的可执行文件中。这样一来，最终的可执行文件就包含了程序所需的所有代码，无需额外的外部依赖。
比喻：假设你在做一个拼图游戏的程序，你可以把每个拼图看作是一个函数或一段代码。而静态链接库就像是一个已经完成并打包好的拼图盒子，
里面包含了所有你需要的拼图。当你在组装游戏时，你只需要把这个拼图盒子打开，把里面的拼图直接放进你的游戏中，这样就可以快速搭建出完整的游戏。
动态链接库 (DLL):

2.动态链接库（通常以 .dll 或 .so 结尾）是在程序运行时加载到内存中的库。与静态链接库不同，动态链接库并不会在编译时被合并到可执行文件中
，而是在程序运行时被动态加载到内存中，并由程序调用其中的函数。这使得多个程序可以共享同一个动态链接库的实例，节省了系统资源。

比喻：想象你有一个工具箱，里面放着各种常用的工具。这个工具箱就像一个动态链接库，你可以把它放在你家里的任何地方。当你需要使用工具时，
你只需打开工具箱，拿出需要的工具进行使用。不同的人可以共享同一个工具箱，从而节省了每个人都要购买一套工具的成本。
综上所述，静态链接库和动态链接库都是用于组织和共享代码的方式，但它们的链接和加载方式不同，各有其适用的场景和优劣势。
 */

/**
$(SolutionDir) 是 Visual Studio 中的一个宏，表示当前解决方案（Solution）的目录路径。
Linking\include 是相对于解决方案目录的一个路径，其中 \Linking\include 表示在 Linking 文件夹下的 include 子文件夹。
因此，$(SolutionDir)\Linking\include 表示的是当前解决方案目录下的 Linking\include 文件夹的路径。
当你在 Visual Studio 中设置包含目录时，使用这个路径，编译器会去这个路径下寻找头文件。
 * 
 */

/**VS Code 打开文件中文乱码解决方法
VS CODE 打开文件中文乱码解决方案

选择菜单【文件file】 --> 【选项】–> 【设置Settings】 --> 【搜索Auto guess encoding】 “files.autoGuessEncoding” --> 勾选选即可。
*/

/**vs配置opengl方法
 * 1.一定要包含到文件中
 * 2.一定要点击解决方案中的属性，然后加上
 *  链接器-输入-/NODEFAULTLIB:MSVCRT;GLFW\glfw3.lib;opengl32.lib;
 *  vc++目录  
 * 包含目录 加上- $(SolutionDir)\Linking\include;
 *  库目录 加上-$(SolutionDir)\Linking\lib;
 * 
 * 3.要打开解决方案sln，而不是打开文件夹
 * 在软件开发中，".sln" 是 Visual Studio 解决方案文件的文件扩展名。Visual Studio 解决方案是一个包含一个或多个项目的容器，用于组织、构建和管理相关的软件项目。
Visual Studio 解决方案文件（.sln）通常包含以下内容：
项目信息：每个项目的名称、类型和位置等信息。项目可以是 C++ 项目、C# 项目、VB.NET 项目等等，每种项目类型都有其特定的属性和设置。
项目依赖关系：解决方案文件指定了项目之间的依赖关系，例如一个项目可能依赖于另一个项目生成的库文件。
解决方案配置：解决方案文件还包含了关于解决方案配置（如 Debug、Release）的信息，包括每个项目的配置以及生成目标文件的路径等。
启动项目：解决方案文件中可以指定一个或多个启动项目，这些项目在解决方案构建时会被自动启动或调试。
使用 Visual Studio 打开 ".sln" 文件后，您可以在解决方案资源管理器中查看和管理项目，编辑项目的属性和设置，并使用 Visual Studio 的工具和功能进行开发、构建和调试。
总之，".sln" 文件是 Visual Studio 中用于组织和管理项目的重要文件，它包含了解决方案的整体结构和配置信息。
 */

/**vs与vscode快捷键有区别
 * 注释代码:Ctrl+K+C
解除注释:Ctrl+K+U
转大写:Ctrl+Shift+U
转小写:Ctrl+U
设置断点调试:F9,断点行不执行
生成代码块:Ctrl+K+S
代码回退到上一步:Ctrl + Z
代码前进到上一步:Ctrl + Y
收起代码块:Ctrl+M+O
展开代码块:Ctrl+M+P
删除整行代码:光标停在该行,Ctrl+L
回到上一个光标位置:Ctrl±
前进到下一个光标位置:Ctrl+Shift±
调试(启动):F5
逐语句调试:F11
增加缩进:Tab
减少缩进:Shift+Tab
在光标所在行的上面插入一行:Ctrl+Enter
在光标所在行的下面插入一行:Ctrl+Shift+Enter
跳转到定义:F12
查找所有引用:Shift+F12
查找:Ctrl+F
替换:Ctrl+H
生成解决方案:Ctrl+Shift+B
全屏显示/退出全屏显示:Shift+Alt+Enter
跳转到指定的某一行:Ctrl+G
快速切换窗口:Ctrl+Tab
强迫智能感知:Ctrl+J
强迫显示参数信息:Ctrl-Shift-空格
逐句和逐过程调试:F11/F10 
向上/向下插入空行:Ctrl+Enter/Ctrl+Shift+Enter
导入对应命名空间:Alt+Shift+F10
折叠光标所在函数:Ctrl+M+M
折叠光标所在类中所有方法体:Ctrl+M+O
折叠光标所在文件中所有类中方法体:Ctrl+M+L
————————————————
版权声明：本文为博主原创文章，遵循 CC 4.0 BY-SA 版权协议，转载请附上原文出处链接和本声明。
                        
原文链接：https://blog.csdn.net/weixin_48449171/article/details/131694325
 */


/**obj格式+
 * https://blog.csdn.net/fengbingchun/article/details/129907891
 */